package com.gopay.common.cps.dao.ic;

/*
 * Copyright (c) 2016. www.gopay.com.cn Inc.All rights reserved.
 * 项目名称 : 国付宝反诈骗管理平台(2016/11/29)
 * 文件名称 : InnerCheckQueryDAO
 * 创建日期 : 16-12-27 下午2:04
 * Author   : baiyunpeng
 *.......
 */
import com.gopay.common.base.dao.BaseDAO;
import com.gopay.common.domain.cps.CpsGenMainOrder;
import com.gopay.common.domain.ic.NextDayOrder;
import com.gopay.common.domain.ic.ReportDailyDtl;

import java.io.Serializable;
import java.util.List;
import java.math.BigDecimal;
import java.util.Map;

public interface InnerCheckQueryDAO  extends BaseDAO<Object[], Serializable> {
    /**
     * 因为没有外币加入,因此查询时候没有剔除外币,理由 : 可能导致账目数少或者不平 ; 目的 : 可以及时发现问题
     * @param dataMap
     * @return
     */
    List<Object[]> queryAcpsRelevantIcTrade(Map<String,Object> dataMap);

    /**
     * 因为没有外币加入,因此查询时候没有剔除外币,理由 : 可能导致账目数少或者不平 ; 目的 : 可以及时发现问题
     * @param dataMap
     * @return
     */
    List<Object[]> queryAcpsRelevantIcTrial(Map<String,Object> dataMap);

    /**
     * @Description 账户零点快照余额查询
     * @Author jianghoupeng
     * @Date 2016/12/28 14:57
     *
     * Copyright (c) 2016. www.gopay.com.cn Inc.All rights reserved.
     */
    BigDecimal queryRDAcctBalance(Map param);

    /**
     * @Description   通用退款 退还的手续费
     * @Author jianghoupeng
     * @Date 2016/12/29 13:39
     *
     * Copyright (c) 2016. www.gopay.com.cn Inc.All rights reserved.
     */
    BigDecimal queryRDCommonBackFee(Map param);

    /**
     * @Description 收款交易退款（01200） 退还的手续费  银行名称是否为空
     * @Author jianghoupeng
     * @Date 2016/12/29 13:40
     *
     * Copyright (c) 2016. www.gopay.com.cn Inc.All rights reserved.
     */
    BigDecimal queryRDBackFeeByRefund(Map param);

    /**
     * @Description 通用交易查询
     * @Author jianghoupeng
     * @Date 2016/12/29 18:43
     *
     * Copyright (c) 2016. www.gopay.com.cn Inc.All rights reserved.
     */
    List<ReportDailyDtl> queryRDOrderCommon(Map param);

    /**
     * @Description 内部对账日报银行订单号是否为空订单查询
     * @Author jianghoupeng
     * @Date 2016/12/27 16:16
     *
     * Copyright (c) 2016. www.gopay.com.cn Inc.All rights reserved.
     */
    List<ReportDailyDtl> queryRDOrderByBankOrder(Map param);

    /**
     * @Description 内部对账日报退款交易订单金额查询  该接口目前只支持退款交易（01200） 银行名称是否为空
     * @Author jianghoupeng
     * @Date 2016/12/27 18:20
     *
     * Copyright (c) 2016. www.gopay.com.cn Inc.All rights reserved.
     */
    List<ReportDailyDtl> queryRDOrderByRefund(Map param);

    /**
     * 补偿二阶段操作后，根据订单的订单号去检查账务是否正常
     * @author yhwpeng@126.com
     * @date 2018-05-25 14:48:22
     * @params
     * @param gopayOrderId :
     * @return java.util.List<java.lang.String>
     */
    List<String> findSuccOrdersCheckAccounting(List<String> gopayOrderId);

    /**
     * 补偿二阶段操作后，根据账务订单号去检查订单是否正常
     * @author yhwpeng@126.com
     * @date 2018-05-25 14:49:50
     * @params
     * @param gopayOrderId :
     * @return java.util.List<java.lang.String>
     */
    List<String> findSuccOrdersCheckOrder(List<String> gopayOrderId);

    /**
     * @Description: 查询成功记账订单
     * @param params
     * @return 
     * @author liuyu 
     */
    List<String> findUnSuOrdersButAccounting(Map<String, Object> params);
    
    /** 
     * @Description: 查询成功订单
     * @param params
     * @return 
     * @author liuyu 
     */
    List<String> findSuccOrdersWithoutAccounting(Map<String, Object> params);
    
    /** 
     * @Description: 根据id查询订单
     * @param param 
     * @author liuyu 
     */
    List<CpsGenMainOrder> findByOrderId(List<String> param);

    /**
     * @Description 跨境支付交易  邮电费
     * @Author jianghoupeng
     * @Date 2017/1/10 19:22
     *
     * Copyright (c) 2017. www.gopay.com.cn Inc.All rights reserved.
     */
    BigDecimal queryRDCommonPostFee(Map param);

    /**
     * @Description 切日订单查询
     * @Author jianghoupeng
     * @Date 2017/1/16 11:33
     *
     * Copyright (c) 2017. www.gopay.com.cn Inc.All rights reserved.
     */
    List<NextDayOrder> queryNextDayOrders(Map param);

    /**
     * 企业基金理财转入退款退还的手续费
     * @param paramMap
     * @return
     */
    BigDecimal queryRDBackFeeByFund(Map paramMap);
}
